/**
* All Rights Reserved , Copyright (C) 2021 , 青岛鼎信通讯股份有限公司
*
* IMpmProjectTaskService
* 项目任务
*
* 修改纪录
* 2021-01-07 版本：1.0 lanjianwei 创建。
* @version 版本：1.0
* @author 作者：lanjianwei
* 创建日期：2021-01-07
*/

package com.topscomm.mpm.service;

import com.topscomm.mpm.IMpmService;
import com.topscomm.mpm.pojo.MpmProjectEntity;
import com.topscomm.mpm.pojo.MpmProjectTaskEntity;
import com.topscomm.mpm.dao.IMpmProjectTaskDao;

import java.util.List;
import java.util.Map;

public interface IMpmProjectTaskService extends IMpmService<MpmProjectTaskEntity, IMpmProjectTaskDao>{
    // 生成任务编号
    List<Map<String, Object>> generateTaskcode(List<Map<String, Object>> tempList, Map<String, Object> paraMap);
    // 首页任务超期
    Map<String,Object> queryOverdueTask(Map<String, Object> paraMap);
    // 超期任务获取项目相关信息
    void getProjectInfo(List<Map<String, Object>> tempList);
    // 单独下发任务并给任务责任人、里程碑及任务责任人发送消息提醒
    void distributeTask(String id);
    // 查询该项目是否还存在已超期的未开始/进行中的任务
    Boolean checkTaskOverDue(String projectCode);
    // 系统部监管页面获取客户决策分析数据
    List<Map<String,Object>> queryTaskForSystem(Map<String, Object> paraMap);
    // 任务进度变动给关注着发送消息
    void sendTaskChangeMessage(String usercodes,String projectcode,String taskname,long taskid);
    // 任务更新时间前一天对任务责任人发送更新提醒
    void sendTaskUpdateFreApp(List<Map<String, Object>> appMap, List<Map<String, Object>> sysMap);
    // 判断里程碑是否全部完成，如果全部完成则将schedulestate变更为“复盘阶段”
    void queryMilepostAllFinished(MpmProjectEntity mpmProjectEntity);
    // 处理拼接in超过1000问题
    List<List<Map<String, Object>>> splitInList(List<Map<String, Object>> projectList);
}
